home *** CD-ROM | disk | FTP | other *** search
/ Goldilocks & The Three Bears in French / Goldilocks & The Three Bears in French.iso / sample1.mst < prev    next >
Encoding:
Text File  |  1993-06-03  |  6.5 KB  |  260 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 1
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST OPTIONS       = 800
  18. CONST APPHELP       = 900
  19. CONST BADPATH       = 6400
  20. CONST MINSPACE      = 1700000
  21. CONST NOFREESPACE   = 1000
  22.  
  23. ''Bitmap ID
  24. CONST LOGO = 1
  25.  
  26. GLOBAL DEST$        ''Default destination directory.
  27. GLOBAL OPTCUR$      ''Option selection from option dialog.
  28. GLOBAL SRCDIR$
  29. GLOBAL INSTDIR$
  30. GLOBAL APPNAME$
  31. GLOBAL WINTITLE$
  32. GLOBAL DIRNAME$
  33. GLOBAL TmpSrc$
  34. GLOBAL TmpDest$
  35. GLOBAL MinorVersion
  36. GLOBAL MajorVersion
  37.  
  38. DECLARE SUB Install
  39. DECLARE SUB BuildGroup
  40. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  41.  
  42.  
  43. INIT:
  44.     APPNAME$ = "The Three Bears in French"
  45.     DIRNAME$ = "3BEARSFR"    
  46.     WINTITLE$ = "Goldilocks and " + APPNAME$ + " - Installation"
  47.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  48.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  49.     SetBitmap CUIDLL$, LOGO
  50.     SetTitle  WINTITLE$
  51.  
  52.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  53.     IF szInf$ = "" THEN
  54.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SAMPLE1.INF"
  55.     END IF
  56.     ReadInfFile szInf$
  57.  
  58.     SRCDIR$ = (GetSymbolValue("STF_SRCDIR") + DIRNAME$ + "\")
  59.  
  60.     OPTCUR$ = "1"
  61.     DEST$ = ("C:\" + DIRNAME$)
  62.     MinorVersion=GetWindowsMinorVersion()
  63.     MajorVersion=GetWindowsMajorVersion()
  64.  
  65. '$IFDEF DEBUG
  66.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  67.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  68.     IF IsDriveValid(WinDrive$) = 0 THEN
  69.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  70.         GOTO QUIT
  71.     END IF
  72. '$ENDIF ''DEBUG
  73.  
  74.  
  75. OPTION:
  76.     SetSymbolValue "RadioDefault", OPTCUR$
  77. OPTL1:
  78.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  79.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  80.  
  81.     IF sz$ = "CONTINUE" THEN
  82.         UIPop(1)
  83.     ELSEIF sz$ = "REACTIVATE" THEN
  84.         GOTO OPTL1
  85.     ELSE
  86.         GOSUB ASKQUIT
  87.         GOTO OPTION
  88.     END IF
  89.     IF OPTCUR$ = "2" THEN
  90.         GOTO NOINSTALL
  91.     END IF
  92.  
  93.  
  94. GETPATH:
  95.     SetSymbolValue "EditTextIn", DEST$
  96.     SetSymbolValue "EditFocus", "END"
  97. GETPATHL1:
  98.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  99.     DEST$ = GetSymbolValue("EditTextOut")
  100.  
  101.     IF sz$ = "CONTINUE" THEN
  102.         IF IsDirWritable(DEST$) = 0 THEN
  103.             GOSUB BADPATH
  104.             GOTO GETPATHL1
  105.         END IF
  106.         IF GetFreeSpaceForDrive(DEST$) < MINSPACE THEN
  107.         GOSUB NOFREESPACE
  108.             GOTO GETPATHL1
  109.         ENDIF
  110.         UIPop 1
  111.     ELSEIF sz$ = "REACTIVATE" THEN
  112.         GOTO GETPATHL1
  113.     ELSEIF sz$ = "BACK" THEN
  114.         UIPop 1
  115.         GOTO OPTION
  116.     ELSE
  117.         GOSUB ASKQUIT
  118.         GOTO GETPATH
  119.     END IF
  120.  
  121.  
  122.     Install
  123.     GOTO QUIT
  124.  
  125. NOINSTALL:
  126.     INSTDIR$ = SRCDIR$
  127.     BuildGroup
  128.  
  129. QUIT:
  130.     ON ERROR GOTO ERRQUIT
  131.  
  132.     IF ERR = 0 THEN
  133.         dlg% = EXITSUCCESS
  134.     ELSEIF ERR = STFQUIT THEN
  135.         dlg% = EXITQUIT
  136.     ELSE
  137.         dlg% = EXITFAILURE
  138.     END IF
  139. QUITL1:
  140.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  141.     IF sz$ = "REACTIVATE" THEN
  142.         GOTO QUITL1
  143.     END IF
  144.     UIPop 1
  145.  
  146.     END
  147.  
  148. ERRQUIT:
  149.     i% = DoMsgBox("Setup sources were corrupted, call 555-1212!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  150.     END
  151.  
  152.  
  153.  
  154. BADPATH:
  155.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  156.     IF sz$ = "REACTIVATE" THEN
  157.         GOTO BADPATH
  158.     END IF
  159.     UIPop 1
  160.     RETURN
  161.  
  162. NOFREESPACE:
  163.     sz$ = UIStartDlg(CUIDLL$, NOFREESPACE, "FInfo0DlgProc", 0, "")
  164.     IF sz$ = "REACTIVATE" THEN
  165.         GOTO BADPATH
  166.     END IF
  167.     UIPop 1
  168.     RETURN
  169.  
  170.  
  171.  
  172. ASKQUIT:
  173.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  174.  
  175.     IF sz$ = "EXIT" THEN
  176.         UIPopAll
  177.         ERROR STFQUIT
  178.     ELSEIF sz$ = "REACTIVATE" THEN
  179.         GOTO ASKQUIT
  180.     ELSE
  181.         UIPop 1
  182.     END IF
  183.     RETURN
  184.  
  185.  
  186.  
  187. '**
  188. '** Purpose:
  189. '**     Builds the copy list and performs all installation operations.
  190. '** Arguments:
  191. '**     none.
  192. '** Returns:
  193. '**     none.
  194. '*************************************************************************
  195. SUB Install STATIC
  196.  
  197.     SrcDir$ = (GetSymbolValue("STF_SRCDIR") + DIRNAME$ + "\")
  198.     CreateDir DEST$, cmoNone
  199.  
  200.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  201.     WriteToLogFile ""
  202.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  203.     WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  204.     WriteToLogFile ""
  205.     WriteToLogFile "May have had to create the directory: " + DEST$
  206.     WriteToLogFile ""
  207.  
  208.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  209.     TmpSrc$ = SrcDir$ + "VARIABLE\IWVAR"
  210.     TmpDest$ = DEST$ + "\VARIABLE"
  211.     AddSectionFilesToCopyList "IWVAR", TmpSrc$, TmpDest$
  212.     IF MinorVersion=0 THEN
  213.       IF MajorVersion=3 THEN
  214.         AddSectionFilesToCopyList "WIN30",SrcDir$,DEST$
  215.       END IF
  216.     END IF
  217.     CopyFilesInCopyList
  218.  
  219.     INSTDIR$ = DEST$
  220.     BuildGroup
  221.     CloseLogFile
  222.  
  223. END SUB
  224.  
  225. SUB BuildGroup STATIC
  226.  
  227.     CreateProgmanGroup "LANGUAGE", "", cmoNone
  228.     ShowProgmanGroup  "LANGUAGE", 1, cmoNone
  229.     CreateProgmanItem "LANGUAGE", APPNAME$, MakePath(INSTDIR$,"present.exe"), MakePath(INSTDIR$,"3bears.ico"), cmoOverwrite
  230.  
  231.     AddDos5Help "YOURAPP", "A brief help text for your Windows application."+chr$(10)+"It can be continued on another line with chr$(10).", cmoNone
  232.  
  233. END SUB
  234.  
  235.  
  236.  
  237.  
  238. '**
  239. '** Purpose:
  240. '**     Appends a file name to the end of a directory path,
  241. '**     inserting a backslash character as needed.
  242. '** Arguments:
  243. '**     szDir$  - full directory path (with optional ending "\")
  244. '**     szFile$ - filename to append to directory
  245. '** Returns:
  246. '**     Resulting fully qualified path name.
  247. '*************************************************************************
  248. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  249.     IF szDir$ = "" THEN
  250.         MakePath = szFile$
  251.     ELSEIF szFile$ = "" THEN
  252.         MakePath = szDir$
  253.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  254.         MakePath = szDir$ + szFile$
  255.     ELSE
  256.         MakePath = szDir$ + "\" + szFile$
  257.     END IF
  258. END FUNCTION
  259.  
  260.